package com.bookstore.service.service;

import com.bookstore.model.dto.LoginDTO;
import com.bookstore.model.dto.RegisterDTO;
import com.bookstore.model.vo.LoginVO;
import com.bookstore.model.vo.RegisterVO;

import javax.servlet.http.HttpServletRequest;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     * @param loginDTO 登录参数
     * @param request HTTP请求
     * @return 登录结果
     */
    LoginVO login(LoginDTO loginDTO, HttpServletRequest request);

    /**
     * 退出登录
     * @param userId 用户ID
     */
    void logout(Long userId);
    
    /**
     * 用户注册
     * @param registerDTO 注册参数
     * @param request HTTP请求
     * @return 注册结果
     */
    RegisterVO register(RegisterDTO registerDTO, HttpServletRequest request);
    
    /**
     * 检查用户名是否存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean checkUsernameExists(String username);
    
    /**
     * 检查手机号是否存在
     * @param phone 手机号
     * @return 是否存在
     */
    boolean checkPhoneExists(String phone);
    
    /**
     * 检查邮箱是否存在
     * @param email 邮箱
     * @return 是否存在
     */
    boolean checkEmailExists(String email);
}